package cn.iocoder.yudao.module.enterprise.service.emissionbasis;

import cn.iocoder.yudao.module.enterprise.controller.admin.emissionbasis.vo.EmissionBasisCreateReqVO;
import cn.iocoder.yudao.module.enterprise.controller.admin.emissionbasis.vo.EmissionBasisRespVO;
import cn.iocoder.yudao.module.enterprise.controller.admin.emissionbasis.vo.EmissionBasisUpdateReqVO;
import cn.iocoder.yudao.module.enterprise.dal.dataobject.emissionbasis.EmissionBasisDO;

import javax.validation.Valid;
import java.util.List;

/**
 * 排放基准 Service 接口
 *
 * @author StevenShen
 */
public interface EmissionBasisService {

    /**
     * 创建排放基准
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createEmissionBasis(@Valid EmissionBasisCreateReqVO createReqVO);

    /**
     * 更新排放基准
     *
     * @param updateReqVO 更新信息
     */
    void updateEmissionBasis(@Valid EmissionBasisUpdateReqVO updateReqVO);

    /**
     * 删除排放基准
     *
     * @param id 编号
     */
    void deleteEmissionBasis(Long id);

    /**
     * 获得排放基准
     *
     * @param id 编号
     * @return 排放基准
     */
    EmissionBasisRespVO getEmissionBasis(Long id);

    /**
     * 获得排放基准列表
     *
     * @return 排放基准列表
     */
    List<EmissionBasisRespVO> getEmissionBasisList();

    /**
     * 获得排放基准
     *
     * @param category 周期类型
     * @return 排放基准
     */
    EmissionBasisDO getEmissionBasisByCategory(Integer category);

}
